Enterprise resource planning (“ERP”) systems are designed to coordinate some or all of the resources, information, and activities needed to complete business processes. An ERP system may support business functions including some or all of manufacturing, supply chain management, financials, projects, human resources, customer relationship management, and the like.
Many ERP systems provide a native application programming interface (“API”) that developers may use to read, write, update, and/or remove data objects on the database level. Some ERP systems may also provide a native API that developers may use for observing, automating, and/or emulating user interactions with the ERP system, such as through a graphical user interface (“GUI”). For example, ERP Servers provided by SAP AG of Weinheim, Germany, typically expose a native API via remote function calls (“RFC”). An RFC is a procedure for data interchange (typically via a TCP/IP connection) between a client (typically an SAP client) and a server (typically an SAP server).
In addition, some ERP systems may expose some or all of a native API as a general-purpose, static “web service,” which can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. When using such a web service, clients and servers commonly communicate over the Hypertext Transfer Protocol (“HTTP”) protocol.
There are several web service variants. In one variant, which has been popular with traditional enterprise, clients and servers communicate via Extensible Markup Language (“XML”) messages that follow the Simple Object Access Protocol (“SOAP”) standard. In such systems, there is often a machine-readable description of the operations offered by the service written in the Web Services Description Language (“WSDL”).
Another web service variant conforms to Representational State Transfer (“REST”) constraints and uses HTTP methods such as PUT, GET, DELETE, and POST instead of SOAP messages. RESTful web services may or may not use WSDL definitions and/or XML or JavaScript Object Notation (“JSON”) messages.
Moreover, many businesses operate an enterprise information portal (“EIP”) for integrating business information, people and processes across organizational boundaries. Many EIP systems allow businesses to provide and/or manage facilities such as some or all of intranets, extranets, websites, document and file management, collaboration spaces, social tools, enterprise search, business intelligence, process integration, system integration, workflow automation, and core infrastructure for third-party extensions. For example, many businesses use EIP systems such as Microsoft SharePoint, provided by Microsoft Corporation of Redmond, Wash.; SAP NetWeaver, provided by SAP AG of Weinheim, Germany; Sun Java System Portal Server, provided by Oracle Corporation or Redwood City, Calif.; and the like.
Using native APIs such as those described above, it is often possible for developers to create custom forms and/or program custom clients to enable users to perform specific transactions with the ERP system. And using facilities provided by an EIP system, it is often possible for developers to enable users to perform such ERP transactions as part of an automated workflow.
However, it can be difficult and/or expensive to have developers implement custom interfaces for interacting with an ERP system via a native-API, even an API that is exposed via a web service. And it can also be difficult and/or expensive to have developers integrate such custom interfaces into an automated workflow. Consequently, many businesses must maintain an expensive information technology department and/or use expensive outside consultants to facilitate custom ERP interface development and workflow integration.